home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-10-13 | 3.6 KB | 89 lines | [TEXT/GEOL] |
- Item 2889822 13-Oct-89 09:55
-
- From: D1282 Power Up,PRT
-
- To: MACAPP.TECH$ MACAPP Tech
-
- Sub: Eiffel
-
- Attn: MacApp.Tech$
- SentBy: James Plamondon
- Date 10/13/89
- Subject Eiffel
- From James Plamondon
- To MacApp.Tech$
-
- Subject: Eiffel
- Dear M. Muys-Vasovic,
-
- Thank you for your response to my link regarding Eiffel and Meyer’s book.
- Your criticism of the book’s unabashed promotion of Eiffel, its “requirements”
- for an OOP language that — surprise! — only Eiffel meets, and its offhand
- dismissal of C++, are all quite valid, in my opinion.
-
- I am intrigued by some of your other comments, however, and would like to have
- you elaborate on them further, if you would.
-
- You mention that multiple inheritance (MI) is badly implemented in Eiffel, and
- that specifically, “renaming is terrible.” What specifically is wrong with
- renaming, generally and/or as implemented in Eiffel, what alternatives are
- there to renaming, and what are advantages and disadvantages of these
- approaches compared to renaming and to each other? (OK, that’s a big
- question, but I’ll gladly accept an answer to any part of it that I can get.)
- Renaming looked pretty straightforward to me; evidently I’m missing something
- important here.
-
- You also point out that Eiffel has no case statement. I agree that this is
- indeed a deficiency. Although many case statements are used to simulate
- polymorphism procedurally, certainly not all are used this way; why, I’m known
- to use a case statement now and again myself (although I won’t admit to using
- a GOTO).
-
- Genericity, you say in your link, “is nice,” but that it can be seen as a
- special case of textural substitution. If it were implemented using textural
- substitution, redundant code would be generated for each instantiation of a
- generic class. Unless Meyer is flat-out lying, however, this is not the case
- in Eiffel. If I may quote from the book (page 344, section 15.4.3: Space):
- “Neither genericity nor multiple inheritance result in code duplication.
- (Most implementations of Ada duplicate the code of a generic package for every
- instantiation; published descriptions of how to implement multiple inheritance
- in Smalltalk require that code for all routines not in the primary lineage be
- duplicated).” (This mention of genericity is not indexed, and is easily
- overlooked.)
-
- If this statement is accepted as being true (which seems only fair until
- proven otherwise), then genericity as implemented in Eiffel is more than just
- a special case of textural substitution. I see genericity as being a very
- important part of the language — a part that is missing from almost every
- other language. Am I making a big deal out of nothing?
-
- Lastly, you state that you have mixed feelings about the Eiffel exception
- mechanism. I will admit that I know nothing about exception mechanisms other
- than that which I have read in Meyer’s book (which we agree is biased in favor
- of Eiffel) and that which I have learned about failure handling in MacApp.
- What, then, are your thoughts on Eiffel’s exception handling?
-
- I’m sending a copy of this link to MacApp.Tech$, to gather up as many
- responses as I can to these questions. I think just about every MacApp
- programmer is beginning to look beyond Object Pascal, and since both C++ and
- Eiffel are essentially C preprocessors, and both will soon be available for
- MPW, this discussion is very pertinent and timely.
-
-
- Looking forward to your response, I remain,
-
-
- Yours,
-
-
- James Plamondon
- Software Engineer
- PowerUp! Software
- 2929 Campus Drive, Suite 300
- San Mateo, CA 94403
- (415) 345-5900 x351
- AppleLink: D1282
- CompuServe: 71230,734
-
-
-